import asyncio
from app.core.logger import logger, TraceID
from app.crud.xm.monitor_buy import get_monitor_buy_archive_ids
from app.core.task_db import TaskDBSession
from tasks.manager.archive_manager import ArchiveTaskManager

async def monitor_archives():
    """
    监控XM挂单藏品
    """
    TraceID.set()
    logger.info("开始监控XM挂单藏品买入...")
    # 1. 查询用户监控XM藏品列表
    async with TaskDBSession() as db_session:
        archive_ids = await get_monitor_buy_archive_ids(db_session)
    if not archive_ids:
        logger.info("没有藏品在监控中...")
        return
    
    # 2. 创建任务管理器并发执行
    task_manager = ArchiveTaskManager()
    await task_manager.run_tasks(archive_ids)
    logger.info("监控XM挂单藏品买入完成...")